The AMD FireStream is a stream processor produced by Advanced Micro Devices (AMD) to use the stream processing/GPGPU (General Purpose Graphics Processing Units) concept for heavy floating-point computations to target various industries, such as the High Performance Computing (HPC), scientific, and financial sectors. Originally developed by ATI Technologies until the company was acquired by AMD in 2006, the product line was previously branded as both ATI FireStream and AMD Stream Processor.[1] The AMD FireStream can also be used as a floating-point co-processor for offloading CPU calculations, which is part of the Torrenza initiative.
Contents |
Since the release of the past-generation Radeon R520 and GeForce G70 GPU cores, the programmable shaders architecture with large floating-point (FP) throughput has drawn more attention from academic and commercial interest groups, primarily for its ability to process data besides its original intended use of rendering visual effects. Due to the displayed interest, more resources were allocated towards developing GPGPU products — responsible for calculating general purpose mathematical formulas — to process heavy calculations which were previously running on mainstream servers, desktop Central Processing Units (CPU), and specialized floating-point math co-processors. GPGPUs were projected to have performance gains upwards of a factor of 10 when compared to CPU-only projections.
Similar GPGPUs appeared as early as the early 2000s. BionicFX was experimenting with processing audio data with a GeForce 6800 video card, announcing the Audio Video EXchange (AVEX) framework,[2] with similar trials being performed by ATI at about the same time. Another example is the Folding@Home distributed computing research program from Stanford University. This was the first piece of software to use the Radeon R580 GPU and other ATI GPU cores, equipped with a special beta version of the ATI Catalyst driver (version 6.5), to perform computations unrelated to graphics. Since May 2006, it has used the GPU cores to accelerate the simulation of protein folding in order to investigate protein-related diseases. At this time, the ATI FireStream was in its planning stages.
With the acquisition of ATI complete, AMD officially announced the reconstruction of branding and announced the AMD Stream Processor (originally the ATI FireStream) on November 15, 2006 as the industry's first commercially available hardware stream processing solution. Based on an ATI Radeon X1900 video card, the AMD Stream Processor is a specialized add-on card that implements the R580 Graphics Processing Unit (GPU). However, it was targeted at complex floating-point calculations used in scientific and financial fields instead of 3D graphics acceleration. AMD claimed that this processor had 8 times the floating-point performance over traditional graphics data processing.[3]
In fact, ATI had put considerable effort into research and development (R&D) of a GPGPU product before their purchase by AMD,[4] and announced the adoption of the stream processing/GPGPU concept in its line of GPU cores in 2006, codenamed Radeon R580.
The brand was further renamed to AMD FireStream with the second generation of stream processors (based on a 55 nm process), released on November 8, 2007.[5] Future plans include the development of a stream processor on an MXM module, intended for embedded applications and next generation products in the fourth quarter of 2008.[6]
The Radeon series graphics processors are 32-bit single-precision floating point vector processors. Due to the highly parallel nature of vector processors, these processors have had a huge impact in specific data processing applications. The mass client project Folding@Home has reported speed improvements of 20 to 40 times using an R580-based graphics card.[7]
The Radeon R580 core includes a total of 48 pixel and vertex shaders, which become parallel processors in floating-point calculations. The ATI FireStream add-on card uses the PCI Express x16 interface to provide 8 GiB/s bandwidth. The card is equipped with 1 GB GDDR3 local memory while the GPU runs at 600 MHz core frequency and 1.3 GHz memory frequency. The core has the ability to execute 512 threads simultaneously (Simultaneous multithreading, SMT), at a rated thermal design power (TDP) of 165 W. The main difference between the AMD FireStream and ordinary Radeon series video cards is that the stream processor on the FireStream lacks video output connectors.
The stream processing hardware comes with a hardware interface called THIN (Thin Hardware INterface), or Close to Metal (CTM, previously named Data Parallel Virtual Machine), to open the GPU architecture in addition to native instruction sets to program developers. This allows to direct control of the stream processors/ALUs and the memory controllers, and permits bypassing of the 3D API layer.
The AMD Stream Processing lineup saw an update to the latest GPU architecture (the Radeon R600) with the release of the latest-generation FireGL video cards on August 7, 2007, which are also capable of stream processing. The architecture was manufactured on the same 80 nm fabrication process node as R580, with more parallel processors and stream processing units. In addition, the maximum GDDR4 memory was increased to 2 GB, providing a maximum of 128 GiB/s of memory bandwidth. The R600 XTX core-based FireGL products released (FireGL V8600 and FireGL V8650) consume more power than the first-generation ATI FireStream, with rated TDP of under 225 W and over 255 W respectively.
The second generation, the AMD FireStream 9170, is based on the RV670 core and is constructed using a 55 nm fabrication process. It features industry's first hardware-based support for double-precision floating-point numbers, asynchronous DMA (giving the stream processors and onboard memory the ability to exchange data without CPU intervention), memory export functionality, and reduced power consumption (less than 150 W with 2 GB GDDR3 memory onboard on a PCI-E 2.0 interface, providing 16 GiB/s device I/O bandwidth).[8]
The latest generation of products in the AMD FireStream line is FireStream 9250 and 9270. The AMD FireStream 9250, announced on June 16, 2008, is based on the RV770 core and is manufactured using 55 nm fabrication process. It features 1 TFLOPS of raw floating-point power on single-precision operations, 1 GiB of GDDR3 memory and a single-slot cooler. While the other variant, the AMD FireStream 9270, announced on November 13, 2008, also features the RV770 core but with a higher floating point operation performance at 1.2 TFLOPS peak, 2 GB of GDDR5 memory and a dual-slot cooler.
The hardware specifications of stream processors released by AMD (and previously ATI) are summarized as follows:
Generation | Model | Video card equivalent |
GPU Core | Threads max. |
Core | Memory | Raw processing power (Floating-Point Operations per Second) |
Peak TDP (watts) | Others | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPUs NB1 | Clock (MHz) |
Bandwidth (GiB/s) | Type | Bus width (bit) |
Amount (MiB) |
Clock (MHz) |
FP32 GFLOPs | FP64 GFLOPs | |||||||
1st NB2 | 580[6]/2U[9] | Radeon X1900 XTX | R580 | 512 | 48 | 600 | 83.2 | GDDR3 | 256 | 1024 | 650 | 375[10] | N/A | ≤165 | |
2nd NB2 | 9170[8][11] | Radeon HD 3870 | RV670 | ? | 64 (320) |
800 | 51.2 | GDDR3 | 256 | 2048 | 800 | 512 | 102.4 NB3[12] | ≤105 | |
3rd NB2 | 9250[13] | Radeon HD 4850 | RV770 | 16,384[14] | 160 (800) |
625 | 63.5 | GDDR3 | 256 | 1024 | 993 | 1000 | 200 NB3 | ≤150 | |
9270[15] | Radeon HD 4870 | 750 | 108.8 | GDDR5 | 256 | 2048 | 850 | 1200 | 240 NB3 | <160 | |||||
4th NB2 | 9350 | Radeon HD 5850 | Cypress(RV870) | 31,744[16] | 288 (1440) |
700 | 128 | GDDR5 | 256 | 2048 | 1000 | 2016 | 403.2 | 150 | codenamed Kestrel |
9370 | Radeon HD 5870 | 320 (1600) |
825 | 147.2 | 256 | 4096 | 1150 | 2640 | 528 | 225 | codenamed Osprey |
Notes:
The AMD FireStream was launched with a wide range of software platform support. One of the supporting firms was PeakStream (acquired by Google in June 2007), who was first to provide an open beta version of software to support CTM and AMD FireStream as well as x86 and Cell (Cell Broadband Engine) processors. The FireStream was claimed to be 20 times faster in typical applications than regular CPUs after running PeakStream's software . RapidMind also provided stream processing software that worked with ATI and NVIDIA, as well as Cell processors.[17]
AMD first released its Stream Computing SDK (v1.0), in December 2007 under the AMD EULA, to be run on Windows XP.[17] The SDK includes "Brook+", an AMD hardware optimized version of the Brook language developed by Stanford University, itself a variant of the ANSI C (C language), open-sourced and optimized for stream computing. The AMD Core Math Library (ACML) and AMD Performance Library (APL) with optimizations for the AMD FireStream and the COBRA video library (further renamed as "Accelerated Video Transcoding" or AVT) for video transcoding acceleration will also be included. Another important part of the SDK, the Compute Abstraction Layer (CAL), is a software development layer aimed for low-level access, through the CTM hardware interface, to the GPU architecture for performance tuning software written in various high-level programming languages.
In August 2011, AMD released version 2.5 of the ATI APP Software Development Kit,[17] which includes support for OpenCL 1.1, a parallel computing language developed by Khronos Group. The concept of compute shaders, officially called DirectCompute, in Microsoft's next generation API called DirectX 11 is already included in the graphics drivers with DirectX 11 support.
According to an AMD-demonstrated system[18] with two dual-core AMD Opteron processors and two Radeon R600 GPU cores running on Microsoft Windows XP Professional, 1 teraflop (TFLOP) can be achieved by a universal multiply-add (MADD) calculation. By comparison, an Intel Core 2 Quad Q9650 3.0 GHz processor can achieve up to 48 GFLOPS.[19]
Recent demonstrations showed that, in Kaspersky SafeStream anti-virus scanning tests optimized for AMD stream processors, the system with two AMD stream processors with dual Opteron processors spotted 6.2 Gbit/s (775 MiB/s) bandwidth, 21 times faster when compared to other dual-processor systems. The stream processor systems also showed only 1-2% CPU use, which indicates significant offloading from the CPU to the stream processor.[20]
|